// 给定两个有序数组nums1和nums2，将nums2合并到nums1，使nums1成为一个有序数组

// 思路，用三个指针分别index1，指向nums1的尾部，index2指向nums2的尾部，index，指向目标索引位置，向nums1中插入值，
// 遍历到最后如果，如果nums2不为空，把nums中的值依次赋值给nums1

function merge(nums1, nums2) {
    let index1 = nums1.length - 1
    let index2 = nums2.length - 1
    let index = nums1.length + nums2.length - 1
    while (index1 >= 0 && index2 >= 0) {
        if (nums1[index1] < nums2[index2]) {
            nums1[index] = nums2[index2]
            index2--
        } else {
            nums1[index] = nums1[index1]
            index1--
        }
        index--
    }
    for (let i = 0; i <= index2; i++) {
        nums1[i] = nums2[i]        
    }
    return nums1
}
let arr1 = [2, 3, 5, 6]
let arr2 = [1, 4, 7]
// merge(arr1, arr2)
function merge2(nums1, m, nums2, n) {
    let index1 = m - 1
    let index2 = n - 1
    let index = m + n - 1
    while (index1 >= 0 && index2 >= 0) {
        if (nums1[index1] < nums2[index2]) {
            nums1[index] = nums2[index2]
            index2--
        } else {
            nums1[index] = nums1[index1]
            index1--
        }
        index--
    }
    for (let i = 0; i <= index2; i++) {
        nums1[i] = nums2[i]        
    }
}
console.log(merge2([1,2,3,0,0,0], 3,[2,5,6], 3))